﻿SeadragonJSPoint = function(x, y) {
    /// <summary>Creates a point at (x, y). A point is a 2-dimensional point.</summary>
    /// <param name="x"></param>
    /// <param name="y"></param>
    /// <field name="x" type="Number">The x value.</field>
    /// <field name="y" type="Number">The y value.</field>
    /// <returns type="Object"></returns>
}

SeadragonJSPoint.prototype =
{
    x: null,
    y: null,

    plus: function(point) {
        /// <summary>Returns a new Seadragon.Point, without modifying the current Seadragon.Point. Note that plus() and minus() take Seadragon.Points while times() and divide() take numbers.</summary>
        /// <param name="point"></param>
        /// <returns type="SeadragonJSPoint"></returns>
    },

    minus: function(point) {
        /// <summary>Returns a new Seadragon.Point, without modifying the current Seadragon.Point. Note that plus() and minus() take Seadragon.Points while times() and divide() take numbers.</summary>
        /// <param name="point"></param>
        /// <returns type="SeadragonJSPoint"></returns>
    },

    times: function(point) {
        /// <summary>Returns a new Seadragon.Point, without modifying the current Seadragon.Point. Note that plus() and minus() take Seadragon.Points while times() and divide() take numbers.</summary>
        /// <param name="point"></param>
        /// <returns type="SeadragonJSPoint"></returns>
    },

    divide: function(point) {
        /// <summary>Returns a new Seadragon.Point, without modifying the current Seadragon.Point. Note that plus() and minus() take Seadragon.Points while times() and divide() take numbers.</summary>
        /// <param name="point"></param>
        /// <returns type="SeadragonJSPoint"></returns>
    },

    apply: function(func) {
        /// <summary>Applies the given function to both x and y, and returns a new Seadragon.Point. An example function is Math.round.</summary>
        /// <param name="func"></param>
        /// <returns type="SeadragonJSPoint"></returns>
    },

    distanceTo: function(point) {
        /// <summary>Returns the distance from this point to the given point.</summary>
        /// <param name="point"></param>
        /// <returns type="Number"></returns>
    },

    equals: function(point) {
        /// <summary>Returns true if this point has the same x and y as the given point.</summary>
        /// <param name="point"></param>
        /// <returns type="Boolean"></returns>
    }
}
